1. Field of Invention
The present invention relates to strategies for conveying information between one or more devices, and more specifically, to a system for managing data in a shared information space allocated between one or more devices in view of resource constraints in these devices.
2. Background
In general, a software program may include a set of instructions, executable by a processor, that are organized to receive input (e.g., data) for a calculation or determination that may then result in an output. Over the years, software technology has evolved to transform these individual instruction sets into modules that may in turn be integrated together to form the more complex programs we know today. Today's more-sophisticated software programs may receive various forms of input such as raw data, for example as stored in magnetic or optical storage, user input through various known types of user interfaces, measured or monitored information converted to electronic information from electronic and/or electromechanical sensors, etc.
In some instances, programs may be configured to produce data usable by other software applications. However, a problem may be presented in conveying the information from one program to another. If the relationship is known before the programs are created, then a specific strategy may be devised to convert one program's output into another program's input. Traditionally this strategy has led to functional but rigid software applications, requiring frequent and possibly substantial revisions due to changes in functionality, platform, architecture, etc.
Recently, more flexible modular architectures for sharing information amongst programs are emerging. At least one strategy may employ a shared memory space, colloquially called a “whiteboard” in tribute to white marker boards often used for conveying and sharing ideas in a group environment. A whiteboard may be a common memory area in which one or more programs may place data. These programs, or “nodes”, may be modular constructs that can be revised or replaced without having to interrupt the operation of the whiteboard. Some nodes may communicate with the whiteboard in order to contribute information, while others may read previously stored information from the whiteboard or may combine these functions. Using this strategy, altering program elements (e.g., altering, adding or deleting one or more nodes) may not affect active nodes that are coupled to the whiteboard, and memory usage may be optimized since information may be stored in a single location while being accessible to all of the nodes.
The previously discussed whiteboard system may be apparent to implement on hard-wired stationary systems, but may be appreciably more difficult to structure when using a flexible network of wireless devices. Issues may include creating a whiteboard area when dealing with devices that may not always be present (e.g., accessible), may include changing requirements and may further be subject to resource constraints. For example, many mobile wireless devices are powered by local sources like batteries, and as a result, may be sensitive to processes that create constant activity, and therefore, a constant drain on the battery cells.